<?php

/* * *********************************************************** */
/* * ******************** controller usuario ******************* */
/* * ************ Desenvolvido por Antônio Ezequiel ************** */
/* * *********************************************************** */

//verifica se o usuario esta logado
if (!verificaUsuarioLogado())
    header("location: " . $configurator["siteadmin"] . '/login.A&V');
//verifica se a sessão expirou
if (verificarExpiracaoSessao())
    header("location: " . $configurator["siteadmin"] . '/login.A&V');
//verifica se o usuario tem permissao
if (!verificaPermissao($_GET['pg'])) {
    header("location: " . $configurator["siteadmin"] . '/erro_permissao.A&V');
}

//atauliza o log do usuario
atualizaLogUsuario($configurator);

//inclusão das classes
include_once($configurator["classes"] . "/usuario.classes.php");
include_once($configurator["dao"] . "/usuarioDao.php");
include($configurator["classes"] . "/ocupacao.classes.php");
include($configurator["dao"] . "/ocupacaoDao.php");

//instanciação dos objetos
$_usuario = new UsuarioDao();
$_ocupacao = new OcupacaoDao();

$ocupacoes = $_ocupacao->listarOcupacoes();

$smarty->assign('ocupacoes', $ocupacoes);

if ($_GET[ajax]) {
    $codigo_q = addslashes($_GET[codigo]);
    $nome_q = addslashes($_GET[nome]);
    $ocupacao_q = addslashes($_GET[ocupacao]);
    $rg_q = addslashes($_GET[rg]);
    $cpf_q = addslashes($_GET[cpf]);

//inicializa a busca
    $ini = 'usu_ativo = 1';

    if (isset($_GET[codigo]) && $_GET[codigo] != "") {
        $codigo = " and usu_codigo = '" . $codigo_q . "'";
    }

    if (isset($_GET[nome]) && $_GET[nome] != "") {
        $nome = " and usu_nome like '%$nome_q%'";
    }

    if (isset($_GET[ocupacao]) && $_GET[ocupacao] != "") {
        $ocupacao = " and usu_ocu_codigo = '$ocupacao_q'";
    }

    if (isset($_GET[rg]) && $_GET[rg] != "") {
        $rg = " and usu_rg = '$rg_q'";
    }

    if (isset($_GET[cpf]) && $_GET[cpf] != "") {
        $cpf = " and usu_cpf = '$cpf_q'";
    }

    // configuração para paginação
    $porPagina = 12;
    $pagina = $_GET[pag];

    if (!$pagina) {
        $inicio = 0;
        $pagina = 1;
    } else {
        $inicio = ($pagina - 1) * $porPagina;
    }

    $_usuario->setNome($nome);
    $_usuario->setRg($rg);
    $_usuario->setCpf($cpf);
    $_usuario->setOcu_codigo($ocupacao);

    $usuarios = $_usuario->listarUsuariosPaginadoAjax($ini, $codigo, $inicio, $porPagina);

    $totRegistro = $_usuario->totalPaginasAjax($ini, $codigo);

    $totRegistros = $totRegistro['totRegistros'];

    //configuração da paginação
    $url = "usuario_listagem.A&V!codigo!$codigo&nome=$_GET[nome]&ocupacao=$_GET[ocupacao]&rg=$_GET[rg]&cpf=$_GET[cpf]&ajax=2&pag=" . ($pagina - 1);
    $url2 = "usuario_listagem.A&V!codigo!$codigo&nome=$_GET[nome]&ocupacao=$_GET[ocupacao]&rg=$_GET[rg]&cpf=$_GET[cpf]&ajax=2";
    $url3 = "usuario_listagem.A&V!codigo!$codigo&nome=$_GET[nome]&ocupacao=$_GET[ocupacao]&rg=$_GET[rg]&cpf=$_GET[cpf]&ajax=2&pag=" . ($pagina + 1);

    $smarty->assign("paginacao", montaPaginacaoAjax($totRegistros, $porPagina, $pagina, $url, $url2, $url3));

    //informar data
    $timezone = new DateTimeZone("America/Sao_Paulo");
    $date = new DateTime();
    $date->setTimezone($timezone);
    $data = $date->format('Y-m-d H:i:s');

    for ($i = 0; $i < count($usuarios); $i++) {
        if ($usuarios[$i]['log'] == null)
            $usuarios[$i]['logado'] = 0;
        else {
            $time = new DateTimeZone("America/Sao_Paulo");
            $dat = new DateTime($usuarios[$i]['log']);
            $dat->setTimezone($time);
            $dat->modify("+3 hour");
            $dat->modify("+5 minute");
            $dati = $dat->format('Y-m-d H:i:s');
            if ($dati < $data) {
                $usuarios[$i]['logado'] = 0;
            }else
                $usuarios[$i]['logado'] = 1;
        }
    }

    $smarty->assign('usuarios', $usuarios);
    $smarty->display("usuario_listagem.tpl");

    exit;
}

$ocupacoes = $_ocupacao->listarOcupacoes();

$smarty->assign('ocupacoes', $ocupacoes);

// configuração para paginação
$porPagina = 12;
$pagina = $_GET['pag'];

if (!$pagina) {
    //pega a quantidade de registros da pesquisa
    $Registros = $_usuario->totalPaginas();
    $_SESSION['totRegistros'] = $Registros['quantidade'];

    $inicio = 0;
    $pagina = 1;
} else {
    $inicio = ($pagina - 1) * $porPagina;
}

$totRegistros = $_SESSION['totRegistros'];

$usuarios = $_usuario->listarUsuariosPaginado($inicio, $porPagina);

//informar data
$timezone = new DateTimeZone("America/Sao_Paulo");
$date = new DateTime();
$date->setTimezone($timezone);
$data = $date->format('Y-m-d H:i:s');

for ($i = 0; $i < count($usuarios); $i++) {
    if ($usuarios[$i]['log'] == null)
        $usuarios[$i]['logado'] = 0;
    else {
        $time = new DateTimeZone("America/Sao_Paulo");
        $dat = new DateTime($usuarios[$i]['log']);
        $dat->setTimezone($time);
        $dat->modify("+3 hour");
        $dat->modify("+5 minute");
        $dati = $dat->format('Y-m-d H:i:s');
        if ($dati < $data) {
            $usuarios[$i]['logado'] = 0;
        }else
            $usuarios[$i]['logado'] = 1;
    }
}

$smarty->assign("paginacao", montaPaginacao($totRegistros, $porPagina, $pagina));
$smarty->assign('usuarios', $usuarios);

$smarty->display("usuario_listagem.tpl");
?>
